#!/usr/bin/env python
#
#  ui.py
#
#  Copyright (C) 2008 Johnny Jacob <johnnyjacob@gmail.com>
#
#  THIS FILE IS LICENSED UNDER THE MIT LICENSE AS OUTLINED IMMEDIATELY BELOW: 
#
#  Permission is hereby granted, free of charge, to any person obtaining a
#  copy of this software and associated documentation files (the "Software"),  
#  to deal in the Software without restriction, including without limitation  
#  the rights to use, copy, modify, merge, publish, distribute, sublicense,  
#  and/or sell copies of the Software, and to permit persons to whom the  
#  Software is furnished to do so, subject to the following conditions:
#
#  The above copyright notice and this permission notice shall be included in 
#  all copies or substantial portions of the Software.
#
#  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
#  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
#  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 
#  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
#  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
#  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
#  DEALINGS IN THE SOFTWARE.
#

import pygtk
pygtk.require('2.0')
import gtk
import pycha.bar
import cairo

class PercieveUI:
    def __init__(self):
        self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
        width, height = (500, 400)
        surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, width, height)

        options = {
            'legend': {'hide': True},
            'background': {'color': '#f0f0f0'},
            }

        dataSet = (
            ('dataSet 1', ((0, 1), (1, 3), (2, 2.5))),
            ('dataSet 2', ((0, 2), (1, 4), (2, 3))),
            ('dataSet 3', ((0, 5), (1, 1), (2, 0.5))),     
            )

        chart = pycha.bar.VerticalBarChart(surface, options)
        chart.addDataset(dataSet)
        chart.render()

        surface.write_to_png('output.png')

        pixbuf = gtk.gdk.pixbuf_new_from_data (surface.get_data(), gtk.gdk.COLORSPACE_RGB, True, 8, width, height, surface.get_stride())
        image = gtk.Image()
        image.set_from_pixbuf (pixbuf)
        image.show()

        hbox = gtk.HBox()
        hbox.add (image)
        hbox.show()

        self.window.add (hbox)

        self.window.show()

